/*
 * Copyright (C), 2002-2015, 你的兔宝宝电子商务有限公司
 * FileName: MapEditor.java
 * Author:   你的兔宝宝
 * Date:     2015-9-11 下午2:15:29
 * Description: List属性编辑器//模块目的、功能描述      
 * History: //修改记录
 * <author>      <time>      <version>    <desc>
 * 修改人姓名             修改时间            版本号                  描述
 */
package com.baby.demo.utils.editor;

import java.beans.PropertyEditorSupport;
import java.util.ArrayList;
import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.baby.demo.utils.Collections;
import com.baby.demo.utils.Jsons;
import com.baby.demo.utils.Strings;

/**
 * List属性编辑器<br> 
 * 〈功能详细描述〉
 *
 * @author 你的兔宝宝
 * @see [相关类/方法]（可选）
 * @since [产品/模块版本] （可选）
 */
public class ListEditor extends PropertyEditorSupport {
    
    private static final Logger logger = LoggerFactory.getLogger(ListEditor.class);
    
    /**
     * 初始化字符串
     */
    String blank = "[]";
    
    @SuppressWarnings({ "rawtypes" })
    @Override
    public void setAsText(String json){
        List oblank = new ArrayList();
        if( !Strings.isEmpty(json) ){
           try{
               oblank = Jsons.json2list(json);
           }catch(Exception e){
               logger.error("json converter to list error",e);
               throw new IllegalArgumentException("json2list属性编辑器异常",e);
           } 
        }
        setValue(oblank);
    }
    
    @SuppressWarnings({ "unchecked", "rawtypes" })
    @Override
    public String getAsText() {
        String text = blank;
        List oblank = (List) getValue();
        if( !Collections.isEmpty(oblank) ){
            text = Jsons.list2json(oblank);
        }
        return text;
    }
    
    @Override
    public String getJavaInitializationString() {
        return blank;
    }
    
}
